﻿// Infrastructure/Configuration/AppSettingsConfigurationProvider.cs

using System.Configuration;

namespace DatabaseManager.Infrastructure.Configuration
{
    /// <summary>
    /// 基于应用配置文件的配置提供器实现
    /// 适用于.NET Framework 4.8及更早版本，使用ConfigurationManager读取配置
    /// </summary>
    public class AppSettingsConfigurationProvider : IConfigurationProvider
    {
        /// <summary>
        /// 初始化配置提供器实例
        /// </summary>
        public AppSettingsConfigurationProvider()
        {
            // .NET Framework中ConfigurationManager会自动读取应用配置文件
            // 无需显式注入，直接使用静态方法访问
        }

        /// <summary>
        /// 从配置文件获取系统数据库连接字符串
        /// 读取configuration/appSettings节点中名为"SystemDatabase"的连接字符串
        /// </summary>
        /// <returns>系统数据库连接字符串，若未配置则返回null</returns>
        public string GetSystemConnectionString()
        {
            // 在.NET Framework中从connectionStrings节点读取连接字符串
            return ConfigurationManager.ConnectionStrings["SystemDatabase"]?.ConnectionString;
        }

        /// <summary>
        /// 从配置文件获取指定键的应用配置项
        /// 读取configuration/appSettings节点中对应键的值
        /// </summary>
        /// <param name="key">配置项的键名</param>
        /// <returns>配置项的值，若键不存在则返回null</returns>
        public string GetAppSetting(string key)
        {
            if (string.IsNullOrEmpty(key))
                return null;

            // 在.NET Framework中从appSettings节点读取配置项
            return ConfigurationManager.AppSettings[key];
        }
    }
}
